T1 - Trabalho do controlador de sistemas contínuos sequencial e tempo real¶


  • Andre Martins Pio de Mattos (16103374)
  • Lukas Alberto Belck (18150497)

Programa¶

  • Setup (exemplo: makefile)
  • Abstrações (exemplo: controller, timer, logger, udp_client)
  • Confiabilidade (exemplo: socket com timeout, reset socket com erro)
  • Previsibilidade (exemplo: temporização com nanosleep, margem entre execuções)

WhatsApp%20Image%202021-07-13%20at%2012.48.57.jpeg

WhatsApp%20Image%202021-07-13%20at%2012.49.33.jpeg

Resultados¶

In [2]:
NANOSEC_PER_MICRO = 1000
response_times = pd.read_csv('report.csv')
response_times.columns = ['response_times_ns']
rtmis = response_times.response_times_ns / NANOSEC_PER_MICRO
response_times.head()
Out[2]:
response_times_ns
0 3485227.0
1 3444233.0
2 3661443.0
3 3042088.0
4 2661322.0
In [3]:
fig = go.Figure(data=[go.Histogram(x=rtmis)])
fig.update_layout(
    title="Distribuição dos tempos de resposta para controle da caldeira",
    xaxis_title="Tempo de resposta [μs]",
    yaxis_title="Contagem",
)
fig.show()
In [4]:
print(f'Numero de amostras: {response_times.shape[0]}')
print(f'Media: {rtmis.mean()} μs')
print(f'Mediana: {rtmis.median()} μs')
print(f'Desvio padrao: {rtmis.std()} μs')
print(f'Max: {rtmis.max()} μs')
print(f'Min: {rtmis.min()} μs')
Numero de amostras: 10999
Media: 949.0410052732068 μs
Mediana: 853.923 μs
Desvio padrao: 494.95804201949034 μs
Max: 14516.942 μs
Min: 351.559 μs

Podemos notar pelo histograma e pelas estatísticas que na média possuimos uma margem de mais de 90%. Portanto, seria possível reduzir o período de cada ciclo de execução.

In [ ]: